package com.qumitech.visualnovel.service.voiceRoom;

import com.qumitech.visualnovel.model.common.BaseRsp;
import com.qumitech.visualnovel.controller.vo.voiceRoom.LiveConversionQueryDTO;
import com.qumitech.visualnovel.controller.vo.voiceRoom.VoiceRoomAnchorVO;
import com.qumitech.visualnovel.pubdef.dto.config.ConfigBusinessSwitchUpdateDTO;
import com.qumitech.visualnovel.pubdef.dto.config.ConfigParamUpdateDTO;
import com.qumitech.visualnovel.pubdef.dto.voiceroom.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Author :  ZhChNing
 * @Descriptiom :
 * @Date Created in 2019/4/17 16:21
 */
public interface VoiceRoomAnchorService {
    /**
     * 修改主播信息
     *
     * @param anchorVO
     */
    void updateAnchor(VoiceRoomAnchorVO anchorVO);



    Map<String, Object> listVoiceRoomAnchorVO(Long uid, Byte type, Byte status, Integer offset, Integer limit);


    Map<String, Object> listExistShortIdVoiceRoom(Map<String, String> paramMap);
    void addVoiceRoomShortId(VoiceRoomShortIdAdminDTO shortIdAdminDTO);
    void deleteVoiceRoomShortIdByUid(Long uid);


    BaseRsp listVoiceRoomWhiteCfgAdminQueryDTO(VoiceRoomWhiteCfgAdminQueryDTO queryDTO);
    BaseRsp addVoiceRoomWhiteCfg( VoiceRoomWhiteCfgDTO voiceRoomWhiteCfgDTO);
    BaseRsp rmVoiceRoomWhiteCfg(String roomId);


    /**
     * 生成 + 获取直播转化数据.
     */
    BaseRsp getLiveConversionStatistics(LiveConversionQueryDTO queryDTO);

    List<ActivityConfigDTO> getActivitiesList(String activityName, Long streamerId, String startTime, String endTime, Integer offset, Integer limit, String orderBy, String orderType);

    int getActivitiesListCount(String activityName, Long streamerId, String startTime, String endTime);

    int updateActivity(List<ActivityConfigDTO> activityDTO);

    void deleteActivity(Map<String, String> map);

    List<ActivityDataDTO> getActivityUsersList(String activityName, Long streamId, Integer offset, Integer limit, String orderBy, String orderType );

    List<HashMap<String,Object>> getActivityUsersListCount(String activityName, Long streamId);

    List<ActivityRemainDataDTO> getActivityRemainList(String activityName, Long streamId, Integer offset, Integer limit, String orderBy, String orderType );

    BaseRsp getRebateTypeOption();

}